package org.abbett.eskine.dao;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import org.abbett.eskine.entity.Page;

public interface PageDao {
    /**
     * The "Create" semantics of "CRUD"
     */
    public void create(Page page);

    /**
     * Create a new instance of this object
     */
    public Page newInstance();

    /**
     * The "Update" semantics of "CRUD"
     */
    public void update(Page page);
    

    /**
     * Find by Primary key
     * 
     * The "read" operation of CRUD
     */
    public Page findByPrimaryKey(String key);


    /**
     * The "Create" or "Update" semantics of "CRUD"
     */
    public void createOrUpdate(Page page);

    /**
     * The "delete" semantics of "CRUD"
     */
    public void delete(Page page);


    /**
     * All Pages. 
        				All pages.
        			
     * 
     * The "read" operation of CRUD
     */
    public List<Page> findPages(Map<String, Object> params);

    /**
     * Pages By User. 
                        All issues belonging to the user.
                    
     * 
     * The "read" operation of CRUD
     */
    public List<Page> findUserPages(Map<String, Object> params);

    /**
     * Page. 
						A page, referenced by its identifier.
					
     * 
         * The "read" operation of CRUD
     */
    public Page getPage(Map<String, Object> params);
}// clickframes::version=1266356764::clickframes